package com.soft.mainsite.mybatis.mapper;

import com.soft.mainsite.mybatis.model.TSysRole;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * TSysRoleMapper
 *
 * @author Jin
 * @create 2017-06-16
 **/
public interface TSysRoleMapper {
    /**
     * 根据id删除
     *
     * @param roleId
     * @return
     */
    int deleteByPrimaryKey(Integer roleId);

    /**
     * 保存
     *
     * @param record
     * @return
     */
    int insert(TSysRole record);

    /**
     * 根据id查询
     *
     * @param roleId
     * @return
     */
    TSysRole selectByPrimaryKey(Integer roleId);

    /**
     * 查询所有
     *
     * @return
     */
    List<TSysRole> selectAll();

    /**
     * 更新
     *
     * @param record
     * @return
     */
    int updateByPrimaryKey(TSysRole record);

    /**
     * 根据用户名查询系统用户角色
     *
     * @param username
     * @return
     */
    @Select("SELECT  `r`.* FROM  `t_sys_user` a,  `t_sys_role` r,  `t_sys_user_role` ar WHERE  `a`.`user_id` = `ar`.`user_id`   AND `r`.`role_id` = `ar`.`role_id` AND `a`.`username` = #{username}")
    @ResultMap("BaseResultMap")
    List<TSysRole> selectSysUserRolesByUsername(@Param("username") String username);

    /**
     * 根据用户id查询角色
     *
     * @param userId
     * @return
     */
    @Select("select r.* from `t_sys_role` r join t_sys_user_role ur on  r.role_id = ur.role_id   where ur.user_id = #{userId}")
    @ResultMap("BaseResultMap")
    List<TSysRole> selectRoleByUserId(@Param("userId") Integer userId);
}